package com.lxh.lxhcrm.model.service;

import com.lxh.lxhcrm.model.dao.ddic.*;
import com.lxh.lxhcrm.model.mappers.inSale.ClassifyMapper;
import com.lxh.lxhcrm.model.pojos.*;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * @author ：鞠玮
 * 开发团队 ：lxh
 * 开发时间 ：2020/1/30 16:08
 * 类的名称 ：DataDictionary
 * 类的描述 ：
 */
@Service
public class DataDictionaryService {
    // dao

    @Resource
    DataDictionaryDao ddd;
    @Resource
    ConStateDao conStateDao;
    @Resource
    DeliveryTimesDao deliveryTimesDao;
    @Resource
    ReturnTimesDao returnTimesDao;
    @Resource
    PaymentMethodDao paymentMethodDao;
    @Resource
    InvTypeDao invTypeDao;
    @Resource
    PrintTemplateDao printTemplateDao;
    // mapper

    @Resource
    ClassifyMapper classifyMapper;

    /**
     * 查询出已经启用的合同分类
     * @return List<ConState>
     */
    public List<ConState> getConStateByIsOn(){
        return conStateDao.findByIsOn(1);
    }

    /**
     * 查询所有数据字典
     * @return List<DataDictionary>
     */
    public List<com.lxh.lxhcrm.model.pojos.DataDictionary> queryDdic(){
        return (List<com.lxh.lxhcrm.model.pojos.DataDictionary>)ddd.findAll();
    }

    /**
     * 通过表名查询数据字典中表格数据
     * @param ddic DataDictionary 数据字典类
     * @return  List<Map<String,String>>
     */
    public List<Map<String, Object>> queryClassify(DataDictionary ddic){
        return classifyMapper.queryClassify(ddic.getTableName());
    }

    /**
     * 更新数据
     * @param map
     */
    public void updateClassify(Map map){
        classifyMapper.updateClassify(map);
    }

    /**
     * 删除记录
     * @param map 记录对象
     */
    public void deleteClassify(Map map){
        classifyMapper.deleteField(map);
    }

    /**
     * 新增记录
     * @param map 记录对象
     */
    public void addClassify(Map map){
        classifyMapper.addClassify(map);
    }

    /**
     * 获取已经启用的交付期次
     * @return
     */
    public List<DeliveryTimes> getDeliveryTimeByIsOn() {
        return deliveryTimesDao.findByIsOn(1);
    }

    /**
     * 获取已经启用的回款期次
     * @return List<ReturnTimes> 回款期次列表
     */
    public List<ReturnTimes> getReturnTimes() {
        return returnTimesDao.findByIsOn(1);
    }

    /**
     * 获取付款方式
     * @return
     */
    public List<PaymentMethod> getPayment(){
        return paymentMethodDao.findByIsOn(1);
    }

    /**
     * 获取启用的票据类型
     * @return List<InvType>
     */
    public List<InvType> getInvType(){
        return invTypeDao.findByIsOn(1);
    }

    /**
     * 查询所有的模板
     * @return List<PrintTemplate>
     */
    public List<PrintTemplate> getAllPrintTemplate(){
        return printTemplateDao.findAll();
    }

    /**
     * 根据模板id查询模板
     * @param templateId 模板id
     * @return 模板对象
     */
    public PrintTemplate getPrintTemplateById(int templateId){
        return printTemplateDao.findById(templateId).get();
    }

    /**
     * 模板的新增和修改
     * @param printTemplate 模板对象
     */
    public void savePrintTemplate(PrintTemplate printTemplate){
        printTemplateDao.save(printTemplate);
    }

    /**
     * 模板的删除
     * @param templateId
     */
    public void deletePrintTemplate(int templateId){
        printTemplateDao.deleteById(templateId);
    }
}
